var http = require('http')

var url = require('url')

var fs = require('fs')

var queryString = require('querystring')

var app = http.createServer(function(req, res){
    //如何区分三种情况，通过地址栏中的地址

    //1 显示登录、      http://127.0.0.1:8080/login.html?a=1&b=2  
        //注册页面      http://127.0.0.1:8080/reg.html  

    //2 在注册页面点击注册按钮时，执行注册的操作     http://127.0.0.1:8080/reg

    //3 在登录页面，点击登录按钮时，执行登录     http://127.0.0.1:8080/denglu

    //请求地址完整路径 req.url

    var urlObj = url.parse(req.url, true)

    //资源路径
    var path = urlObj.pathname

    //1 显示登录页面
    // /login.html
    // 2 显示注册页面
    // /reg.html
    // 3 注册操作  /reg
    // 4 登录操作 /denglu 

    console.log(path)
    // 显示登录页面
    if(path=='/login.html'){
        fs.readFile('./template/login.html',function(err,data){
            if(err){

            }else{
                res.write(data)
                res.end()
            }
        })
    }

    // 显示注册页面

    if(path=='/reg.html'){
        fs.readFile('./template/reg.html',function(err,data){
            if(err){

            }else{
                res.write(data)
                res.end()
            }
        })
    }

    // 先要处理post请求
    var str=''
    req.on('data',function(data){
        str += data
    })
    
    req.on('end',function(err){
        if(!err){
            // console.log(str.toString())
            var user = queryString.parse(str)
            // console.log(user)
            //执行登录操作
            // 用过当前提交的用户名密码，去数据库中查询是否存在

            //得到数据库中存在的所有的用户的数组
            var {users} = require('./database.js')
            if(path=='/denglu'){
                //1. 获取数据库中用户的数据
                
                //2. 比对
                var userExist = false
                for(var i=0;i<users.length;i++){
                    var now = users[i]
                    if(now.username == user.username && now.password==user.password){
                        console.log(`welcome back ${now.username}`)
                        userExist = true
                        break;
                    }
                }
                if(userExist == false){
                    console.log('username or password not correct')
                }
            }
            //执行的注册操作
            if(path=='/reg'){
                //得到数据库中存在的所有的用户的数组

                //将当前的用户对象加入数组中
                users.push(user)
                console.log(users)
                // 重写database.js 将users 重新写入文件

                //1. 将users数组，转化成 JSON 字符串
                var userStr = JSON.stringify(users)//[{"username":"yuonly","password":"123123"}]
                //2. 拼出数据库字符串
                var dataStr = `var users = ${userStr}

                module.exports = {
                    users
                }`
                // console.log(userStr)
                // console.log(dataStr)
                // console.log('reg button')
                // 3. 重写数据库文件
                fs.writeFile('./database.js',dataStr,function(){
                    //4. 跳转到登录页面
                    res.writeHead(301,{'Location':'/login.html'})
                    res.end()
                })
                
            }
        }
    })


})

app.listen(8000)